home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2006 May / PCWMAY06.iso / Software / Freeware / First Page 2006 3.00 / fp2006-final-3.00-setup.exe / {app} / Iscripts / DHTML - Dynamic Content / frequency-cap.izs < prev    next >
Text File  |  2005-09-01  |  7KB  |  180 lines

  1. <!NOWIZARD>
  2.  
  3. <!TITLE>Frequency Cap Content
  4. <!/TITLE>
  5.  
  6. <!BROWSER>FF1+ IE5+ Opr7+<!/BROWSER>
  7.  
  8. <!DESCRIPTION>Want to display content that only gets shown once every x hours? With this unique script you can do just that! By using JavaScript cookies and CSS ("display" property), this script lets you cap the display frequency of any content(s) on the page to once every x hours. Each content can have its own frequency cap, and setting up the script is as easy as specifying the IDs of the contents inside the script.
  9.  
  10. Frequency capping is a great way to maximize the impact of a content, to avoid visual "burnout." Use it on content ads, special announcements etc.
  11.  
  12.  
  13. <!/DESCRIPTION> 
  14.  
  15. <!CATEGORY>dynamic content<!/CATEGORY>
  16.  
  17. <!SCRIPT>
  18. <!-- START OF SCRIPT -->
  19. <!-- Step 1: Insert the below script into the HEAD section of your page: -->
  20. <script type="text/javascript">
  21.  
  22. /***********************************************
  23. * Frequency Cap Content script- ⌐ Dynamic Drive DHTML code library (www.dynamicdrive.com)
  24. * This notice MUST stay intact for legal use
  25. * Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
  26. ***********************************************/
  27.  
  28. //["ID of content to frequency cap", "Display frequency interval (full hours only)"]
  29. var capcontent=new Array()
  30. capcontent[0]=["myad", "1 hr"]
  31. capcontent[1]=["mynote", "3 hr"]
  32.  
  33. function get_cookie(Name) {
  34.   var search = Name + "="
  35.   var returnvalue = "";
  36.   if (document.cookie.length > 0) {
  37.     offset = document.cookie.indexOf(search)
  38.     if (offset != -1) { // if cookie exists
  39.       offset += search.length
  40.       end = document.cookie.indexOf(";", offset);
  41.       if (end == -1)
  42.          end = document.cookie.length;
  43.       returnvalue=unescape(document.cookie.substring(offset, end))
  44.       }
  45.    }
  46.   return returnvalue;
  47. }
  48.  
  49. function resetcookie(id){
  50. var expireDate = new Date()
  51. expireDate.setHours(expireDate.getHours()-10)
  52. document.cookie = id+"=;path=/;expires=" + expireDate.toGMTString()
  53. }
  54.  
  55. function showorhide(caparray){
  56. if (get_cookie(caparray[0])!='')
  57. document.write("#"+caparray[0]+"{display: none;}\n") //CSS TO HIDE CONTENT BTW FREQUENCY
  58. else{
  59. var expireDate = new Date()
  60. expireDate.setHours(expireDate.getHours()+parseInt(caparray[1]))
  61. document.cookie = caparray[0]+"="+parseInt(caparray[1])+";path=/;expires=" + expireDate.toGMTString()
  62. }
  63. }
  64.  
  65. document.write('<style type="text/css">\n')
  66.  
  67. for (i=0; i<capcontent.length; i++){
  68. if (get_cookie(capcontent[i][0])!=parseInt(capcontent[i][1]))
  69. resetcookie(capcontent[i][0])
  70. showorhide(capcontent[i])
  71. }
  72.  
  73. document.write('</style>')
  74.  
  75. </script>
  76. <!-- An array inside the script lets you input the IDs of the contents to frequency cap, plus the display interval in hours.
  77.  
  78. Step 2: With the script installed, simply give the contents you want to frequency cap each with the ID as specified in the script above. For example:
  79.  
  80. <div id="myad">
  81.  
  82. //some content
  83. //some content
  84.  
  85. </div><table id="mynote">
  86.  
  87. //rest of table here
  88.  
  89. </table>As you can see, the content can be anything, whether it's a DIV, table, or even an image etc. In the above case, the DIV will be shown once every hour, and the TABLE, once every 3 hours.
  90.  
  91. Useful tip: To reset the cookie for a specific content so it gets shown again, simply change the time interval for it inside array capcontent[] so it's different from the current interval (for example, from the current 1 hour to 2 hour). The script will reset the cookie whenever it detects a change in time interval from the previous for a content. This is useful for debugging/ testing purposes.
  92.  
  93. Cool!
  94. -->
  95. <!-- END OF SCRIPT -->
  96. <!/SCRIPT>
  97.  
  98. <!PREVIEW>
  99. <!-- START OF SCRIPT -->
  100. <!-- Step 1: Insert the below script into the HEAD section of your page: -->
  101. <script type="text/javascript">
  102.  
  103. /***********************************************
  104. * Frequency Cap Content script- ⌐ Dynamic Drive DHTML code library (www.dynamicdrive.com)
  105. * This notice MUST stay intact for legal use
  106. * Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
  107. ***********************************************/
  108.  
  109. //["ID of content to frequency cap", "Display frequency interval (full hours only)"]
  110. var capcontent=new Array()
  111. capcontent[0]=["myad", "1 hr"]
  112. capcontent[1]=["mynote", "3 hr"]
  113.  
  114. function get_cookie(Name) {
  115.   var search = Name + "="
  116.   var returnvalue = "";
  117.   if (document.cookie.length > 0) {
  118.     offset = document.cookie.indexOf(search)
  119.     if (offset != -1) { // if cookie exists
  120.       offset += search.length
  121.       end = document.cookie.indexOf(";", offset);
  122.       if (end == -1)
  123.          end = document.cookie.length;
  124.       returnvalue=unescape(document.cookie.substring(offset, end))
  125.       }
  126.    }
  127.   return returnvalue;
  128. }
  129.  
  130. function resetcookie(id){
  131. var expireDate = new Date()
  132. expireDate.setHours(expireDate.getHours()-10)
  133. document.cookie = id+"=;path=/;expires=" + expireDate.toGMTString()
  134. }
  135.  
  136. function showorhide(caparray){
  137. if (get_cookie(caparray[0])!='')
  138. document.write("#"+caparray[0]+"{display: none;}\n") //CSS TO HIDE CONTENT BTW FREQUENCY
  139. else{
  140. var expireDate = new Date()
  141. expireDate.setHours(expireDate.getHours()+parseInt(caparray[1]))
  142. document.cookie = caparray[0]+"="+parseInt(caparray[1])+";path=/;expires=" + expireDate.toGMTString()
  143. }
  144. }
  145.  
  146. document.write('<style type="text/css">\n')
  147.  
  148. for (i=0; i<capcontent.length; i++){
  149. if (get_cookie(capcontent[i][0])!=parseInt(capcontent[i][1]))
  150. resetcookie(capcontent[i][0])
  151. showorhide(capcontent[i])
  152. }
  153.  
  154. document.write('</style>')
  155.  
  156. </script>
  157. <!-- An array inside the script lets you input the IDs of the contents to frequency cap, plus the display interval in hours.
  158.  
  159. Step 2: With the script installed, simply give the contents you want to frequency cap each with the ID as specified in the script above. For example:
  160.  
  161. <div id="myad">
  162.  
  163. //some content
  164. //some content
  165.  
  166. </div><table id="mynote">
  167.  
  168. //rest of table here
  169.  
  170. </table>As you can see, the content can be anything, whether it's a DIV, table, or even an image etc. In the above case, the DIV will be shown once every hour, and the TABLE, once every 3 hours.
  171.  
  172. Useful tip: To reset the cookie for a specific content so it gets shown again, simply change the time interval for it inside array capcontent[] so it's different from the current interval (for example, from the current 1 hour to 2 hour). The script will reset the cookie whenever it detects a change in time interval from the previous for a content. This is useful for debugging/ testing purposes.
  173.  
  174. Cool!
  175. -->
  176.  
  177. <!-- END OF SCRIPT -->
  178. <!/PREVIEW>
  179.  
  180. <!RELATED>NONE<!/RELATED>